R t x P r o f e s s i o n a l T o o l b o x Report Toolbox for Microsoft PDS ------------------ PROGRAMMER'S GUIDE ------------------ Cyberphilia, Inc. 1465 Midland Avenue Bronxville, NY 10708-6035 -- Telephones -- 7 Days a week, 24 hours a day: In New York City Metropolitan Area (800) 300-2018 Elsewhere (914) 337-8322 TABLE OF CONTENTS INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . i ABOUT THE AUTHORS . . . . . . . . . . . . . . . . . . . . . . . . ii SHAREWARE NOTICE . . . . . . . . . . . . . . . . . . . . . . . . iv COMPILING & LINKING WITH RTX . . . . . . . . . . . . . . . . . . v TUTORIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 EXAMPLE USING BINARY DATA FILE . . . . . . . . . . . . . . . 3 EXAMPLE USING ISAM DATA FILE . . . . . . . . . . . . . . . . 11 THE RESULTING OUTPUT . . . . . . . . . . . . . . . . . . . . 14 TOOLBOX REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . 15 RtxClose . . . . . . . . . . . . . . . . . . . . . . . . . . 16 RtxData . . . . . . . . . . . . . . . . . . . . . . . . . . 17 RtxGetBreak . . . . . . . . . . . . . . . . . . . . . . . . 18 RtxGetPage . . . . . . . . . . . . . . . . . . . . . . . . . 19 RtxGetRemaining . . . . . . . . . . . . . . . . . . . . . . 20 RtxInit . . . . . . . . . . . . . . . . . . . . . . . . . . 21 RtxNewPage . . . . . . . . . . . . . . . . . . . . . . . . . 22 RtxOpen . . . . . . . . . . . . . . . . . . . . . . . . . . 23 RtxOutput . . . . . . . . . . . . . . . . . . . . . . . . . 24 RtxResult . . . . . . . . . . . . . . . . . . . . . . . . . 25 RtxSetBreak . . . . . . . . . . . . . . . . . . . . . . . . 26 RtxSetBreak0 . . . . . . . . . . . . . . . . . . . . . . . . 27 RtxSetColumn . . . . . . . . . . . . . . . . . . . . . . . . 28 RtxSetError . . . . . . . . . . . . . . . . . . . . . . . . 30 RtxSetFooting . . . . . . . . . . . . . . . . . . . . . . . 31 RtxSetForm . . . . . . . . . . . . . . . . . . . . . . . . . 32 RtxSetHeading . . . . . . . . . . . . . . . . . . . . . . . 34 RtxSetPrinter . . . . . . . . . . . . . . . . . . . . . . . 35 RtxSkip . . . . . . . . . . . . . . . . . . . . . . . . . . 36 RtxSuppress . . . . . . . . . . . . . . . . . . . . . . . . 37 APPENDIX A - RESULT CODES . . . . . . . . . . . . . . . . . . . . 40 [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== INTRODUCTION Rtx Professional Toolbox is a library for Microsoft PDS v7.x which enables programmers to add professional-quality reporting capabilities to their applications with ease. When Microsoft introduced the User Interface Toolbox, Presentation Graphics Toolbox and PROISAM into PDS, it instantly became a credible environment to create top quality business applications. However, despite all their enhancements to PDS for improved screen presentation and storage of data, only LPRINT exists to output that data to a piece of paper. Rtx was written to compliment Microsoft's enhancements to PDS and complete the picture. Using a few simple calls to the Rtx library, you can quickly set up a business report format. Once you have, just pass it the raw data and it takes care of the rest. Rtx handles page breaks, headers and footers, formatting and subtotalling columnar data and much more. Rtx is distributed on bulletin boards or from shareware houses as one compressed .ZIP file: RTX.ZIP. It contains the Rtx library (RTX.LIB), this document (RTXGUIDE.TXT), product registration form (REGISTER.TXT), and two header files which you must include at the top of any program you create which uses Rtx (RTX.BI, RTXMEM.BI). ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [i] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== ABOUT THE AUTHORS Cyberphilia, Inc. is a small computer consulting firm based in the New York City area. Established originally by Carlos-Manuel Abreu as a one-man show in 1983, now in our 10th year we're still only five consultants strong. Cyberphilia is committed to providing affordable, effective contract programming and consultancy services to businesses in the New York area. To do so, we remain a small, tight-knit group working from our homes. We're joined by CyberNet, workgroup software developed in- house for our own use. With CyberNet we exchange electronic mail, co-develop software and documentation, and distribute and handle technical assistance calls. The release of our Professional Toolbox product line is a departure for us. Until now, all the toolboxes we've created were for exclusive use in the software we write for our clients. Recently, however, we decided to market these toolboxes as shareware. We supply full source code in Microsoft PDS v7.1 to registered users along with exhaustive documentation. Source code is supplied with the understanding that it is for your personal use and can be modified to suit your needs and recompiled for inclusion in your own end-user applications. We strictly forbid, however, redistributing the source code, in whole or in part. Furthermore, the source code cannot be used to build another library for subsequent sale. Each of our toolboxes represents long hours of design work and programming; we've burned a lot of midnight oil. We trust you'll understand our desire to protect a lot hard work. Besides, it wouldn't be a very nice thing to do. You wouldn't like it if we did it to you, eh? Rtx is our first toolbox to be released as shareware. We're sprucing up the others now and are wrapping up the documentation. In a minute we'll fill you in on other exciting toolboxes that are on their way from Cyberphilia, Inc. during 1992. We sincerely hope that you'll find our toolboxes useful and opt to register. We're anxious to hear from you, so drop us a line. Caveat Emptor: We're a little wacky. (In this business, who isn't?) Carlos-Manuel Abreu ("Chuck") Joseph DiMuro ("Joe") John Owens ("Jack") Elisa Medina ("Lisa") Peter McGahan ("Pete") ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [ii] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== OTHER SHAREWARE PRODUCTS FROM CYBERPHILIA Mtx Professional Toolbox Available September, 1992 Add memo fields to your data files and ISAM databases. Allows you to associate free-form, variable-length text fields to your fixed-length data records. Why say COMMENTS AS STRING*30 when you can say COMMENTS AS MEMO? Xtx Professional Toolbox Available September, 1992 Our Xtx toolbox allows you to import from and export to a wide variety of commonly used file formats. Read and write Lotus 1- 2-3 files, DBASE (XBASE) files, mail-merge files and more all under your direct program control. Btx Professional Toolbox Available October, 1992 Our business toolbox provides you with core accounting modules which allow you to quickly assemble complete interactive business applications. Modules include General Ledger, Accounts Receivable, Accounts Payable, Payroll, Job Costing and Financial Reporting. Dtx Professional Toolbox Available November, 1992 Add a sophisticated text retrieval engine to your PDS applications. Allows you to create document databases programmatically from source documents in ASCII and a variety of popular word processor formats. Instantly locate all occurrences of a word or phrase. Dtx supports most common text retrieval operations, including: stemming (automatic conflation of words to root words), truncation (manual conflation using wildcard characters), weighting (indexing based on statistical distribution of terms), stoplists (eliminate words that have no indexing value) and thesaurus (conflation using synonymous terms). ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [iii] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== SHAREWARE NOTICE Rtx Professional Toolbox is Shareware, not freeware. After a thirty day evaluation period, if you continue to use Rtx Professional Toolbox, you are required to register the product and include a license fee of $30.00 by check or money order. The license fee will entitle you to a copy of the Rtx Professional Toolbox source code (subject to terms), written entirely in Microsoft PDS v7.1, and telephone support for 90 days after the date of purchase. To register, print out the registration form, REGISTER.TXT included with RTX.ZIP. Fill in your name, company name (if applicable), address, city, state, zip code and telephone number at the top. In order to receive Rtx source code, you must read and sign the non- disclosure statement found at the bottom of the registration form. Mail the completed form along with your check or money order for $30.00 to: Cyberphilia, Inc. 1465 Midland Avenue Bronxville, NY 10708-6035 ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [iv] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== COMPILING & LINKING WITH RTX To use Rtx in your applications, you must include the RTX.BI file, distributed with the toolbox, at the top of your source code among the declarations. It contains the subprogram and function declarations necessary to call Rtx procedures. Additionally, you must include the RTXMEM.BI file at the top of your source code among your memory allocation statements. It dimensions commonly shared global arrays that Rtx uses to store active report information. Please do not make any modifications to these header files. It may seem at first that you can change the MaxColumns constant, for example, to accommodate more columns on your reports, however doing so will corrupt the aforementioned shared memory block because MaxColumns is already "etched in stone" in RTX.LIB. If you register with us you'll receive the complete Rtx source code. With the source code on hand, you can modify these files as needed because you can always recompile the Rtx with the new parameters. When linking your programs to produce final executables, you'll have to include RTX.LIB, QBX.LIB and DTFMTER.LIB. RTX.LIB contains the actual Rtx procedures. QBX.LIB is needed because Rtx uses the Call Interrupt procedure. Finally, DTFMTER.LIB is required because Rtx uses the procedures contained therein to format data to be printed on reports. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [v] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== TUTORIAL The easiest way to learn how to use Rtx is by example. The upcoming pages present a simple application and a detailed line-by-line explanation. Please refer to the TOOLBOX REFERENCE section elsewhere in this document for more detailed information on all available Rtx entry points. Assume you're writing accounting software and need to give it the capability to produce a cash disbursements journal from its accounts payable module. Each transaction record would minimally contain a Transaction Date, Payee's ID Number, Check Number, Account Number and an Amount. For the purposes of this example we'll use the following record structure for the data ... Type TransactionStruc ' Transaction record structure Date As String*6 ' 6-digit date as YYMMDD Payee As String*4 ' 4-digit payee or vendor ID Check As String*4 ' 4-digit check number Account As String*5 ' 5-digit account number Amount As Currency ' Amount as currency End Type ... and say that the data file contains the following data ... REC# -DATE- PAYEE CHECK ACCOUNT -AMOUNT- 1 911001 1234 1001 20450 100.00 2 911001 1235 1002 20451 150.00 3 911001 1401 1003 20452 125.00 4 911001 1401 1004 20450 110.00 5 911001 1402 1005 20451 205.00 6 911002 1260 1007 20450 190.00 7 911002 1261 1008 20451 175.00 8 911002 1261 1009 20452 160.00 9 911002 1261 1010 20450 155.00 ... and say that we'd like the report to print the information, totalling transactions by date and subtotalling them by payee within each date. The key to understanding Rtx can be found in the dynamics of the data with which it is supplied. Notice how the data in the Date column changes from record 5 (911001) to 6 (911002). This is known to Rtx as a "break," that is, a break in the flow of the column's data. A break also occurs several times in the Payee column and in every case of the Amount column. Even though Rtx recognizes breaks in all columns, only the first two are of any interest to us in this example ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [1] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== because we want Rtx to stop and print totals when a break in these columns occurs. Initially Rtx recognizes no special handling for columnar breaks. Calls to the RtxSetBreak procedure dictate action to be taken (e.g. inserting subtotals, skipping lines, or jumping to the top of a new page) when a break in specific columns occur. The upcoming code samples, though simplistic, clearly demonstrate how we might use Rtx to generate our sample report. The line numbers at the left are for documentation purposes only here, and are not part of the code itself. A detailed explanation appears after the program listing. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [2] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== EXAMPLE USING BINARY DATA FILE Data must be supplied to Rtx in the order in which it is to print on the final report for it to correctly determine breaks. In this example, the data stored in the file is already sorted by date and then by payee within each date. [01] | '$Include: 'Rtx.Bi' | ' [02] | Const TRNRecSiz = 27 | ' [03] | '$Include: 'RtxMem.Bi' | ' [04] | Type TransactionStruc | Date As String*6 | Payee As String*4 | Check As String*4 | Account As String*5 | Amount As Currency | End Type | ' [05] | Dim _ | TRN As TransactionStruc, _ | I As Integer, _ | Recs As Integer | ' [06] | DataFile = FreeFile [07] | Open "TEST.DAT" For Binary As DataFile | ' [08] | RtxInit | ' [09] | RtxSetPrinter 1 [10] | RtxSetError 25 [11] | RtxSetForm 80, 66, 0, 3, 3 | ' [12] | RtxSetHeading 1, "CASH DISBURSEMENTS JOURNAL", 2 | RtxSetHeading 2, "=", 0 | RtxSetHeading 3, "", 0 | ' [13] | RtxSetFooting 1, "", 0 | RtxSetFooting 2, "=", 0 | RtxSetFooting 3, "Date: " + Date$ + " Page: ^P", 1 | ' [14] | RtxSetColumn 1, "Date", 1, "########", 0, False, True | RtxSetColumn 2, "Payee", 1, "#####", 1, False, True | RtxSetColumn 3, "Check", 1, "#####", 1, False, False | RtxSetColumn 4, "Account", 1, "#######", 1, False, False ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [3] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== | RtxSetColumn 5, "Amount", 6, "#####0.00", 1, True, False | ' [15] | RtxSetBreak 1, 1, 2, "DATE TOTALS" | RtxSetBreak 2, 2, 1, "PAYEE TOTALS" | ' [16] | RtxSetBreak0 "REPORT TOTALS" | [17] | RtxOpen "TEST.TXT", True [18] | If RtxResult = RTXSUCCESS Then [19] | Recs = Lof(DataFile) \ TRNRecSiz [20] | For I = 1 To Recs [21] | Get #DataFile,, TRN [22] | RtxData 1, Mid$(TRN.Date, 3, 2) + "/" + _ | Right$(TRN.Date, 2) + "/" + Left$(TRN.Date, 2) [23] | RtxData 2, TRN.Payee [24] | RtxData 3, TRN.Check [25] | RtxData 4, TRN.Account [26] | RtxData 5, Mkc$(TRN.Amount) [27] | RtxOutput [28] | Next I [29] | RtxClose 3, True [30] | End If | ' [31] | Close DataFile [32] | End DETAILED EXPLANATION [01] '$Include: 'Rtx.Bi' The Rtx header file must be included at the top of any application you write that uses Rtx. It includes Rtx-specific constants, procedure, function and global memory declarations. [02] TRNRecSiz = 27 Declares the size, in bytes, of the transaction records in the data file. [03] '$Include: 'RtxMem.Bi' Allocates global arrays. This statement must appear exactly as it appears immediately following your declarations (non-executing statements). Do not ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [4] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== change any constants (such as MaxHeaders) in the Rtx.Bi file as unpredictable errors will occur. Changing them in your application will not change the constants used by the library which are "etched in stone." [04] Type TransactionStruc Date As String*6 Payee As String*4 Check As String*4 Account As String*5 Amount As Currency End Type Declares the structure of data records in the file. [05] Dim _ TRN As TransactionStruc, _ I As Integer, _ Recs As Integer Allocates a buffer to contain data retrieved from the file, and declares both an integer local loop counter and integer variable to hold the number of records in the data file. [06] DataFile = FreeFile Obtains a free file handle. [07] Open "TEST.DAT" For Binary As DataFile Opens the data file for binary access on the acquired free file handle. [08] RtxInit Initializes the Rtx system. RtxInit must be called before using the Rtx system. [09] RtxSetPrinter 1 ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [5] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== Informs Rtx that LPT1 is to be used for printing hardcopies of report images. LPT1 through LPT3 are supported. [10] RtxSetError 25 Informs Rtx that when printing hardcopies, screen line 25 should be used to display informational messages and prompts to the user when errors occur during printing, such as paper jams or when the printer is out of paper. This is known as "interactive error handling." If this had been set to 0 and an error occurs during printing, Rtx would simply cancel printing and return a result code to the application indicating the nature of the error, in effect disabling interactive error handling. [11] RtxSetForm 80, 66, 0, 3, 3 Characteristics of the output form are defined here. In this case the statement reads "80 characters across, 66 lines down, no left margin, top margin is 3 lines and bottom margin is 3 lines." [12] RtxSetHeading 1, "CASH DISBURSEMENTS JOURNAL", 2 RtxSetHeading 2, "=", 0 RtxSetHeading 3, "", 0 Defines report header lines. The statements read "The first line of the heading is to be 'CASH DISBURSEMENTS JOURNAL' and should be centered. Fill the second report heading line with equal signs to achieve a horizontal double line. The final line is blank." [13] RtxSetFooting 1, "", 0 RtxSetFooting 2, "=", 0 RtxSetFooting 3, "Date: " + Date$ + " Page: ^P", 1 Similar to RtxSetHeading, RtxSetFooting declares footer lines in a top-down fashion. This statement defines a blank line as the first footing line, the second a horizontal double line, and the final the current date and page number, flush right. [14] RtxSetColumn 1, "Date", 1, "########", 0, False, True RtxSetColumn 2, "Payee", 1, "#####", 1, False, True ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [6] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetColumn 3, "Check", 1, "#####", 1, False, False RtxSetColumn 4, "Account", 1, "#######", 1, False, False RtxSetColumn 5, "Amount", 6, "#####0.00", 1, True, False Defines report columns. It is not necessary that columns be defined in order, but they must contiguous (i.e. once all columns have been defined, there cannot be any gaps between the numbers.) Columns are numbered from left to right, with a maximum of 10 columns supported by Rtx. The statement for the first column reads "Set the column heading to 'Date', the date will be supplied as a string (1), mask the data as 8 characters in length ('########'), print flush left (0), do not maintain or print totals for this column (False), and form a hanging indent (True) by printing only the first occurrence of the column data when two or more consecutive rows have the same contents in this column." Rtx, when printing column headings, underlines them with hyphens to the length of the mask. If the heading text is longer than the mask it is truncated to the length of the mask. The statement for the second column sets the column heading to 'Payee', specifies that the Payee ID will be supplied as a string (1), the data will be masked to 5 characters in length ('#####'), printing will be flush right (1), it is not a totalling column (False) and should form a hanging indent (True). The statement for the third column sets the column heading to 'Check', specifies that the Check Number will be supplied as a string (1), the data will be masked to 5 characters in length ('#####'), printing will be flush right (1), it is not a totalling column (False) and should always print (False, no hanging indent). The statement for the fourth column sets the column heading to 'Account', specifies that the Account Number will be supplied as a string (1), the data will be masked to 7 characters in length ('#######'), printing will be flush right (1), it is not a totalling column (False) and should always print (False, no hanging indent). The statement for the final column sets the column heading to 'Amount', specifies that the Amount will be supplied as Currency in string format using Mkc$() (6), the data will be masked to 9 characters in length, scaled to two digits after the decimal point ('#####0.00'), printing will be flush right (1), totals of ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [7] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== this column are to be maintained and printed at breaks set by RtxSetBreak (True) and should always print (False, no hanging indent). [15] RtxSetBreak 1, 1, -1, "DATE TOTALS" RtxSetBreak 2, 2, 1, "PAYEE TOTALS" Sets breaks in the report. The statements read "Set the first break (1) to trigger when there is a break in the first column (1, Date), skip to the top of the next page after printing totals (-1, page break) and precede the totals with the text 'DATE TOTALS'. Set the second break (2) to trigger when there is a break in the second column (2, Payee), skip one blank row after printing totals (1) and precede the totals with the text 'PAYEE TOTALS'." [16] RtxSetBreak0 "REPORT TOTALS" Sets special break '0', that is, the final break that occurs when a report is closed. This statement reads "Precede report totals that print at the end of the report with the text 'REPORT TOTALS.'" [17] RtxOpen "TEST.TXT", True Opens the file to receive the report image ('TEST.TXT') and tells Rtx to overwrite any file with the same name (True) by deleting it first. [18] If RtxResult = RTXSUCCESS Then Tests to see if the most recent Rtx call (RtxOpen) was successful. [19] Recs = Lof(DataFile) \ TRNRecSiz Determines the number of transaction records in the data file by performing an integer divide of the record size constant into the length of the data file. [20] For I = 1 To Recs ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [8] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== Loops through all records in the data file. [21] Get #DataFile,, TRN Reads the current record into the TRN record buffer. [22] RtxData 1, Mid$(TRN.Date, 3, 2) + "/" + _ Right$(TRN.Date, 2) + "/" + Left$(TRN.Date, 2) Sends data to be placed in column 1 to Rtx. The statement reads "The data for column one of the current row (1) is the YYMMDD date string (TRN.Date) formatted to MM/DD/YY. [23] RtxData 2, TRN.Payee Sends the Payee ID string of the current record to be placed in column 2. [24] RtxData 3, TRN.Check Sends the Check Number string of the current record to be placed in column 3. [25] RtxData 4, TRN.Account Sends the Account Number string of the current record to be placed in column 4. [26] RtxData 5, Mkc$(TRN.Amount) Sends the Amount of the current record, which is in native Currency type, as a string by first converting it with Mkc$(). [27] RtxOutput Outputs the current row, formed by prior calls to RtxData, to the report image file, first checking for and processing any breaks that occur between the previous row at the pending one. [28] Next I ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [9] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== Continues to next iteration of read loop. [29] RtxClose 3, True Indicates that report is complete. The statement reads "Terminate processing the report, print three copies (3) and retain the report image file for possible use later (True). [30] End If End of IF/END IF block on successful RtxOpen. [31] Close DataFile [32] End Closes the data file and ends the program. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [10] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== EXAMPLE USING ISAM DATA FILE Unlike the example using a binary data file which requires that data is sorted first, data can be extracted from an ISAM file in the necessary order, regardless of how it was entered originally, by using an index that is comprised of the concatenated transaction Date and Payee ID. Alpha markers [A..Z] on the left highlight where the program differs from the binary file example | '$Include: 'Rtx.Bi' | '$Include: 'RtxMem.Bi' | ' | Type TransactionStruc | Date As String*6 | Payee As String*4 | Check As String*4 | Account As String*5 | Amount As Currency | End Type | ' | Dim _ | TRN As TransactionStruc, _ | I As Integer, _ | Recs As Integer | ' [A] | Open "TEST.MDB" For ISAM TransactionStruc "CASH" As DataFile [B] | CreateIndex DataFile, "DatePayee", False, "Date", "Payee" [C] | SetIndex DataFile, "DatePayee" | ' | RtxInit | ' | RtxSetPrinter 1 | RtxSetError 25 | RtxSetForm 80, 66, 0, 3, 3 | ' | RtxSetHeading 1, "CASH DISBURSEMENTS JOURNAL", 2 | RtxSetHeading 2, "=", 0 | RtxSetHeading 3, "", 0 | ' | RtxSetFooting 1, "", 0 | RtxSetFooting 2, "=", 0 | RtxSetFooting 3, "Date: " + Date$ + " Page: ^P", 1 | ' | RtxSetColumn 1, "Date", 1, "########", 0, False, True | RtxSetColumn 2, "Payee", 1, "#####", 1, False, True | RtxSetColumn 3, "Check", 1, "#####", 1, False, False | RtxSetColumn 4, "Account", 1, "#######", 1, False, False ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [11] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== | RtxSetColumn 5, "Amount", 6, "#####0.00", 1, True, False | ' | RtxSetBreak 1, 1, 2, "DATE TOTALS" | RtxSetBreak 2, 2, 1, "PAYEE TOTALS" | ' | RtxSetBreak0 "REPORT TOTALS" | | RtxOpen "TEST.TXT", True | If RtxResult = RTXSUCCESS Then [D] | MoveFirst DataFile | Do While Not Eof(DataFile) [E] | Retrieve DataFile, TRN | RtxData 1, Mid$(TRN.Date, 3, 2) + "/" + _ | Right$(TRN.Date, 2) + "/" + Left$(TRN.Date, 2) | RtxData 2, TRN.Payee | RtxData 3, TRN.Check | RtxData 4, TRN.Account | RtxData 5, Mkc$(TRN.Amount) | RtxOutput [F] | MoveNext DataFile | Loop | RtxClose 3, True | End If | ' [G] | DeleteIndex DataFile, "DatePayee" | | Close DataFile | End DETAILED EXPLANATION Only new or changed lines which apply to ISAM handling are detailed here. Please read the previous section "EXAMPLE USING BINARY DATA FILE" first. [A] Open "TEST.MDB" For ISAM TransactionStruc "CASH" As DataFile Opens the ISAM data file, indicating that records are of type 'TransactionStruc' and the table within the file containing the cash disbursement transactions is called 'CASH'. [B] CreateIndex DataFile, "DatePayee", False, "Date", "Payee" Creates a sorted index for the table comprised of the Date and Payee ID. In doing so, records can be retrieved sequentially in Date and Payee order. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [12] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== [C] SetIndex DataFile, "DatePayee" Makes the index just created the current one. [D] MoveFirst DataFile Moves the record pointer to the first record in the table, by index order. [E] Retrieve DataFile, TRN Retrieves the current record into the TRN record buffer. [F] MoveNext DataFile Moves the record pointer to the next record in the table, by index order. [G] DeleteIndex DataFile, "DatePayee" Deletes the 'DatePayee' created earlier in the program. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [13] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== THE RESULTING OUTPUT CASH DISBURSEMENTS JOURNAL ================================================================= Date Payee Check Account Amount -------- ----- ----- ------- --------- 10/01/91 1234 1001 20450 100.00 1235 1002 20451 150.00 1401 1003 20452 125.00 1004 20450 110.00 --------- PAYEE TOTALS 235.00 1402 1005 20451 205.00 --------- DATE TOTALS 690.00 10/02/91 1260 1007 20450 190.00 1261 1008 20451 175.00 1009 20452 160.00 1010 20450 155.00 --------- PAYEE TOTALS 490.00 --------- DATE TOTALS 680.00 --------- REPORT TOTALS 1370.00 ================================================================= Date: 08-31-1992 Page: 1 And there you have it. Read on for details on all Rtx entry points available to you. Enjoy! ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [14] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== TOOLBOX REFERENCE ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [15] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxClose [Subprogram] Syntax: RtxClose Copies%, Retain% Terminates processing of the current report, optionally printing report to printer defined with RtxSetPrinter. Parameter Type/Description ------------- ----------------------------------------- Copies Integer; Number of copies to print 0 ..... Do not print >0 .... Print specified number of copies Retain Integer; Boolean TRUE (-1) or FALSE (0); Indicates whether report image file should be retained after printing. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADCOPIES% Invalid number of copies (< 0) RTXNOTOPEN% Report image has not yet been opened RTXOUTOFPAPER% Printer is out of paper. RTXNOTONLINE% Printer is not online. RTXIOERROR% Printer I/O error occurred. RTXTIMEOUT% Printer timed out. When printing, recoverable errors can be handled by interactive screen displays allowing operator to resume printing when condition is rectified (Paper jam, printer out of paper, etc.) under Rtx's control. If Rtx is not handling print errors, an RtxResult of 3-6 indicates the condition and that printing was canceled automatically. If it is, RtxResult 3-6 is only returned if the conditions occurred and the operator then opted to discontinue printing. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [16] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxData [Subprogram] Syntax: RtxData Column%, Contents$ Inserts contents of specified column into the current report row. Parameter Type/Description ------------- ----------------------------------------- Column Integer in range 1 to the number of columns defined with RtxSetColumn; Indicates the report column in which to insert the associated contents. Contents String; Contents to insert into specified column; String format varies depending on column type as follows: STRING (Type 1) ... String INTEGER (Type 2) .. Mki$(Value%) LONG (Type 3) ..... Mkl$(Value&) SINGLE (Type 4) ... Mks$(Value!) DOUBLE (Type 5) ... Mkd$(Value#) CURRENCY (Type 6) . Mkc$(Value@) Notes: RtxData requires that Contents be supplied as a string in order to provide one, consistent interface for all data types. RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADCOLUMN% Column is out of range (1 to number of columns defined with RtxSetColumn) RTXBADCONTENTS% Contents are invalid (i.e. Type 3 column, LONG value, was not passed as a 4-byte Mkl$() string.) RTXNOTOPEN% Report image file has not yet been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [17] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxGetBreak [Function] Syntax: x = RtxGetBreak Returns the break number, if any, that has either just occurred or is about to occur. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXNOTOPEN% Report image file has not yet been opened RtxGetBreak() called immediately prior to RtxOutput returns the break that will occur once RtxOutput is called. If no break is about to occur, RtxGetBreak() returns 0. RtxGetBreak() called immediately after an RtxOutput returns the break number that has just occurred. RtxGetBreak() returns 0 if no break has occurred. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [18] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== == RtxGetPage [Function] Syntax: x = RtxGetPage Returns the current page number. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXNOTOPEN% Report image file has not yet been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [19] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxGetRemaining [Function] Syntax: x = RtxGetRemaining Returns the number of printable lines remaining on the current page. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXNOTOPEN% Report image file has not yet been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [20] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxInit [Subprogram] Syntax: RtxInit Initializes Rtx system to begin processing a new report. Notes: Always returns an RtxResult of RTXSUCCESS% ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [21] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxNewPage [Subprogram] Syntax: RtxNewPage Forces printing to continue at the top of a new page. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXNOTOPEN% Report image file has not yet been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [22] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxOpen [Subprogram] Syntax: RtxOpen FileSpec$, Overwrite% Opens the report image file for processing. Parameter Type/Description ------------- ----------------------------------------- FileSpec String; Fully-qualified MS-DOS file name, including path (if necessary), of the file to receive the report image. Overwrite Integer; Boolean TRUE (-1) or FALSE (0); If TRUE and FileSpec already exists on disk, Rtx deletes the old copy before opening the new file. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADFILENAME% FileSpec is not a valid MS-DOS file name. RTXFILEEXISTS% FileSpec exists but Overwrite is FALSE. RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [23] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxOutput [Subprogram] Syntax: RtxOutput Outputs current report row to report image file. Notes: RtxOutput must be called each time a row has been filled by calls to RtxData and is ready to write to the image file. RtxOutput then clears out buffers for the next row. RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXNOTOPEN% Report image has not yet been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [24] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxResult [Function] Syntax: x = RtxResult Returns the procedure specific result of the last Rtx call. Notes: See Appendix A for a list of all known result codes. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [25] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetBreak [Subprogram] Syntax: RtxSetBreak Number%, Column%, Skip%, Text$ Establishes a "break" in the report, that is, when a logical break in the report occurs. Parameter Type/Description ------------- ----------------------------------------- Number Integer in the range 1 to 5, specifying which break is being declared. Column Integer in range 1 to number of columns defined with RtxSetColumn; Column in which to look for a break. Skip Integer; the number of blank rows to skip after processing the break but before printing the next row. Can also be set to (-1) to jump to the beginning of a new page. Text String; Text to print immediately to the left of the first totalling column. Notes: Rtx allows up to 5 explicit breaks within each report. RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADBREAK% Number is out of range (1 to 5) RTXBADCOLUMN% Column is out of range (1 to number of columns declared with RtxSetColumn) RTXBADSKIP% Invalid number of rows to skip after processing break (< -1) RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [26] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetBreak0 [Subprogram] Syntax: RtxSetBreak0 Text$ Establishes text to print immediately to the left of the first totalling column at the end of a report. Parameter Type/Description ------------- ----------------------------------------- Text String; Text to print immediately to the left of the first totalling column. Notes: Break '0' is always processed by Rtx when RtxClose is called just prior to actually closing the report image file. It is a special break that exists to flush out final report totals. RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [27] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetColumn [Subprogram] Syntax: RtxSetColumn Column%, Label$, Source%, Mask$, Style%, _ Total%, First% Declares the characteristics of a report column. Parameter Type/Description ------------- ----------------------------------------- Column Integer in range 1 to 10; Column being declared. Label String; Text to be used as column heading. Source Integer; Type of source data to be passed by subsequent RtxData calls as follows: 1 ... STRING 2 ... INTEGER 3 ... LONG 4 ... SINGLE 5 ... DOUBLE 6 ... CURRENCY Mask String; Mask used to describe length of the column and format of resulting output. Style Integer; Specifies justification of formatted data within the column as follows: 0 ....... Flush left 1 ....... Flush right 2 ....... Centered Total Integer; Boolean TRUE (-1) or FALSE(0); Indicates that a total for this column is to be printed when breaks specified with RtxSetBreak occur. First Integer; Boolean TRUE (-1) or FALSE(0); Indicates that only the first occurrence of the column's contents are to be printed when two or more rows contain exactly the same contents, producing a hanging indent. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [28] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== Notes: Rtx makes calls to PDS's Format Add-on library using your mask. You must link your programs with the DTFMTER.LIB library supplied with your copy of PDS for Rtx to function properly. Please see PDS's documentation for more information on specifying masks. Source types are declared as constants in RTX.BI for your convenience as follows: RTXSTRING%, RTXINTEGER%, RTXLONG%, RTXSINGLE%, RTXDOUBLE%, RTXCURRENCY% Style types are also declared in RTX.BI for your convenience: RTXLEFT%, RTXRIGHT%, RTXCENTER% RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADCOLUMN% Invalid column (< 1 or > 10) RTXBADSOURCE% Invalid source type (< 1 or > 6) RTXBADMASK% Invalid or no mask specified RTXBADSTYLE% Invalid style (< 0 or > 2) RTXBADTOTAL% Columns with string data cannot be totalled. RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [29] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetError [Subprogram] Syntax: RtxSetError Row% Parameter Type/Description ------------- ----------------------------------------- Row Integer; Screen row to use when displaying interactive printer error messages and prompts or 0 to disable interactive error handling. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADROW% Invalid row (< 0 or > current screen length) RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [30] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetFooting [Subprogram] Syntax: RtxSetFooting Number%, Text$, Style% Declares a row of footer text. Parameter Type/Description ------------- ----------------------------------------- Number Integer in range 1 to 5; Report footer row being declared as 1 to 5, from top to bottom of footer area. Text String; Text to be printed in specified row. Style Integer; Specifies justification of the footer text within the row as follows: 0 ....... Flush left 1 ....... Flush right 2 ....... Centered Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADFOOTER% Invalid footer number (< 1 or > 5) RTXBADSTYLE% Invalid style (< 0 or > 2) RTXALREADYOPEN% Report image file has already been opened Specifying Text as either a single hyphen (-) or a single equal sign (=) causes Rtx to fill the row across with a line composed of the respective character. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [31] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetForm [Subprogram] Syntax: RtxSetForm FormWidth%, FormLength%, LeftMargin%, _ TopMargin%, BottomMargin% Defines overall form characteristics. Parameter Type/Description ------------- ----------------------------------------- FormWidth Integer in range 1 to 255; Total number of printable characters across the page. FormLength Integer in range 1 to 255; Total number of printable lines down the page. LeftMargin Integer in range 0 to width of form; Number of characters to skip on the left before printing data. TopMargin Integer in range 0 to length of form; Number of lines to skip before printing report header. BottomMargin Integer in range 0 to length of form; Number of lines to skip after printing report footer before new page. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADWIDTH% Invalid form width (< 1 or > 255) RTXBADLENGTH% Invalid form length (< 1 or > 255) RTXBADLEFT% Invalid left margin (< 0 or > FormWidth) RTXBADTOP% Invalid top margin (0 or > FormLength) RTXBADBOTTOM% Invalid bottom margin (< 0 or > FormLength) ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [32] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [33] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetHeading [Subprogram] Syntax: RtxSetHeading Number%, Text$, Style% Declares a row of heading text. Parameter Type/Description ------------- ----------------------------------------- Number Integer in range 1 to 5; Report header row being declared as 1 to 5, from top to bottom of header area. Text String; Text to be printed in specified row. Style Integer; Specifies justification of the header text within the row as follows: 0 ....... Flush left 1 ....... Flush right 2 ....... Centered Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADHEADER% Invalid header number (< 1 or > 5) RTXBADSTYLE% Invalid style (< 0 or > 2) RTXALREADYOPEN% Report image file has already been opened Specifying Text as either a single hyphen (-) or a single equal sign (=) causes Rtx to fill the row across with a line composed of the respective character. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [34] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSetPrinter [Subprogram] Syntax: RtxSetPrinter Number% Specifies the printer to be used when printing reports. Parameter Type/Description ------------- ----------------------------------------- Number Integer in range 1 to 3 (i.e. LPT1 to LPT3). Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADPRINTER% Invalid printer number (< 1 or > 3) RTXALREADYOPEN% Report image file has already been opened ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [35] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSkip [Subprogram] Syntax: RtxSkip Rows% Skip specified number of rows (output blank rows) in the report image or skip to the top of a new page. Parameter Type/Description ------------- ----------------------------------------- Rows Integer; in range -1 to form length Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXBADSKIP% Invalid number of rows (< -1 or > FormLength) RTXNOTOPEN% Report image has not yet been opened RtxSkip skips the specified number of lines or until the bottom of the page is reached, whichever occurs first. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [36] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== RtxSuppress [Subprogram] Syntax: RtxSuppress State% Turns suppression of single-item block subtotals on/off. Parameter Type/Description ------------- ----------------------------------------- State Integer; Boolean TRUE (-1) or FALSE(0); Sets new state of single-item block subtotal suppression. Notes: RtxResult returns one of the following values: RTXSUCCESS% Operation completed successfully RTXUNKNOWN% An unknown error occurred while performing operation RTXALREADYOPEN% Report image file has already been opened Single-item blocks occur when one break immediately follows another, resulting in only one item appearing on the printed page between subtotals. Rtx's normal behavior is to subtotal at every declared break. Turning suppression on causes Rtx not to subtotal single-item blocks unnecessarily, for example: ======================================================== RtxSuppress 10/01/91 1234 1001 20450 100.00 False ------- DATE TOTALS 100.00 -------------------------------------------------------- RtxSuppress 10/01/91 1234 1001 20450 100.00 True ======================================================== The most commonly found single-item block is when only one line appears in a block as in the above example. However, they also occur between nested breaks and do not necessarily consist of only one line, for example: ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [37] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== ======================================================== RtxSuppress 10/01/91 1234 1001 20450 100.00 False --------- PAYEE TOTALS 100.00 1235 1002 20451 150.00 --------- PAYEE TOTALS 150.00 1401 1003 20452 125.00 1004 20450 110.00 --------- PAYEE TOTALS 235.00 1402 1005 20451 205.00 --------- PAYEE TOTALS 205.00 --------- DATE TOTALS 690.00 --------- REPORT TOTALS 690.00 -------------------------------------------------------- RtxSuppress 10/01/91 1234 1001 20450 100.00 True 1235 1002 20451 150.00 1401 1003 20452 125.00 1004 20450 110.00 --------- PAYEE TOTALS 235.00 1402 1005 20451 205.00 --------- REPORT TOTALS 690.00 ======================================================== Notice how when RtxSuppress is True, no date totals appear, but when it's False they do. Even though the block consists of multiple lines, they're all of the same date and it's the only date in the report. The date subtotal ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [38] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== and the report total are the same. Turning RtxSuppress ON (True) eliminates the unnecessary subtotalling of the date. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [39] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== APPENDIX A - RESULT CODES The following list details all result codes known to Rtx. Immediately following each result code is a list of the conditions that occur which would return such a result code. Please be aware that the result codes within square brackets are defined as constants in RTX.BI. Please use these constants instead of the value you find for them in RTX.BI, as they may change from one version to the next. [RTXALREADYOPEN%] Report image file has already been opened RtxOpen has been called and either: 1) This is the first report generated in the session and RtxInit has not been called. 2) Previously generated report was not terminated with RtxClose. 3) Operation can only be performed prior to opening the report image file. [RTXBADBOTTOM%] Invalid bottom margin Bottom margin specified is out of range 0 to the length of form set with RtxSetForm. [RTXBADBREAK%] Break number specified is out of valid range 1) Break number supplied to RtxSetBreak is out of range 1..5. 2) Break number supplied elsewhere is out of range 0 to number of breaks set with RtxSetBreak. [RTXBADCOLUMN%] Invalid column number 1) Column number supplied to RtxSetColumn is out of range 1..10. 2) Column number supplied elsewhere is out of range 1 to number of columns declared with RtxSetColumn. [RTXBADCONTENTS%] Contents are invalid ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [40] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== Contents supplied to RtxData for the column are not in the format expected by Rtx, dictated by the column's source data type set with RtxSetColumn. [RTXBADCOPIES%] Invalid number of copies Number of copies to print specified to RtxClose are out of range 0..255. [RTXBADFILENAME%] FileSpec is not a valid MS-DOS file name File name supplied to RtxOpen is not a valid MS-DOS file name, contains an invalid path or is null. [RTXBADFOOTER%] Invalid footer number Footer number supplied to RtxSetFooting is out of range 1..5. [RTXBADHEADER%] Invalid header number Header number supplied to RtxSetHeading is out of range 1..5. [RTXBADLEFT%] Invalid left margin Left margin value supplied to RtxSetForm is out of range 0 to form width set with the same call. [RTXBADLENGTH%] Invalid form length Form length value supplied to RtxSetForm is out of range 1..255. [RTXBADMASK%] Invalid or no mask specified Mask string supplied to RtxSetColumn is either invalid or null. [RTXBADPRINTER%] Invalid printer number Printer number supplied to RtxSetPrinter is out of range 1..3. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [41] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== [RTXBADROW%] Invalid row Row number supplied to RtxSetError is out of range 0 to the number of rows currently available on the screen. [RTXBADSKIP%] Invalid number of rows to skip 1) Rows specified to RtxSkip is out of range -1 to length of form set with RtxSetForm. 2) Rows specified to RtxSetBreak is out of range -1 to length of form set with RtxSetForm. [RTXBADSOURCE%] Invalid source type Source type specified is out of range 1..6. [RTXBADSTYLE%] Invalid style Print style number specified is out of range 0..2. [RTXBADTOP%] Invalid top margin Top margin value supplied to RtxSetForm is out of range 0 to length of form specified in the same call. [RTXBADTOTAL%] Columns with string data cannot be totalled The source data type of the column being defined with RtxSetColumn is STRING and cannot be totalled. [RTXBADWIDTH%] Invalid form width (< 1 or > 255) Form width value supplied to RtxSetForm is out of range 1..255. [RTXFILEEXISTS%] FileSpec exists but Overwrite is FALSE. RtxOpen was called specifying that a report image file residing on disk with the same name should not overwritten and the file exists. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [42] [Rtx] Report Toolbox for PDS v7.x PROGRAMMER'S GUIDE ===================================================================== [RTXIOERROR%] Printer I/O error occurred A printer i/o error occurred on the printer specified with RtxSetPrinter while attempting to print a report with RtxClose. [RTXNOTONLINE%] Printer is not online The printer specified with RtxSetPrinter is not online or went offline in the midst of printing. [RTXNOTOPEN%] Report image has not yet been opened Requested operation can only be performed once the report image file has been opened with RtxOpen. [RTXOUTOFPAPER%] Printer is out of paper The printer specified with RtxSetPrinter is out of paper or ran out of paper in the midst of printing. [RTXSUCCESS%] Operation completed successfully The Rtx operation completed successfully without incident. [RTXTIMEOUT%] Printer timed out The printer specified with RtxSetPrinter has timed out while attempting to print a report. [RTXUNKNOWN%] An unknown error occurred while performing operation An unspecified error, that is, one not handled by Rtx's error trapping routine has occurred. ===================================================================== Copyright 1992 by Cyberphilia, Inc. Page [42] ---------------------end of author's documentation------------------- This program is distributed by Public (software) Library. For a free copy of our monthly shareware review magazine with a listing of more than 7000 programs, call or write: Public (software) Library P.O.Box 35705 Houston, TX 77235-5705 800-2424-PsL 713-524-6394 FAX: 713-524-6398 CIS: 71355,470